LINQ ব্যবহার করে ডেটা ফেচ এবং ম্যানিপুলেশন

Microsoft Technologies - লিংক (LinQ) LINQ to Entities (LINQ with Entity Framework) |
160
160

LINQ (Language Integrated Query) .NET প্ল্যাটফর্মে ডেটা ম্যানিপুলেশনের জন্য একটি শক্তিশালী টুল, যা ডেটাকে ফেচ এবং ম্যানিপুলেট করতে সহায়ক। LINQ এর মাধ্যমে আপনি শুধুমাত্র ডেটা অনুসন্ধানই করতে পারেন না, বরং সেই ডেটা পরিবর্তন, ফিল্টার, গ্রুপ, সাজানো (sorting), গ্রুপিং, অ্যাগ্রিগেট করা এবং অন্যান্য ম্যানিপুলেশন করতে পারেন। LINQ ব্যবহার করে Entity Framework বা অন্যান্য ডেটাবেস থেকেও ডেটা ম্যানিপুলেট করা যায়।

এখানে LINQ ব্যবহার করে ডেটা ফেচ এবং ম্যানিপুলেশন এর কিছু গুরুত্বপূর্ণ ধারণা এবং উদাহরণ দেওয়া হলো।


LINQ Query Syntax দিয়ে ডেটা ফেচ এবং ম্যানিপুলেশন

LINQ তে Query Syntax ব্যবহার করলে SQL স্টাইলে কোয়েরি লেখা যায়, যা অনেকটা SQL কোডের মতো। এই সিনট্যাক্সটি ডেটা ফেচ করার জন্য এবং সেটি ম্যানিপুলেট করার জন্য ব্যবহৃত হয়।

উদাহরণ:

using (var context = new ApplicationDbContext())
{
    // ডেটা ফেচ এবং ফিল্টার করা
    var query = from person in context.People
                where person.Age > 30
                orderby person.Name ascending
                select person;

    foreach (var person in query)
    {
        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
    }
}

এখানে, Query Syntax ব্যবহার করে context.People টেবিল থেকে Age > 30 শর্তে ডেটা ফেচ করা হয়েছে এবং সাজানো হয়েছে Name অনুসারে।


LINQ Method Syntax দিয়ে ডেটা ফেচ এবং ম্যানিপুলেশন

LINQ তে Method Syntax ব্যবহার করলে Where(), Select(), OrderBy(), GroupBy() ইত্যাদি মেথড দিয়ে ডেটা ম্যানিপুলেট করা যায়। এটি Lambda Expressions ব্যবহার করে কোয়েরি তৈরির একটি পদ্ধতি।

উদাহরণ:

using (var context = new ApplicationDbContext())
{
    // Method Syntax ব্যবহার করে ডেটা ফেচ এবং ফিল্টার করা
    var query = context.People
                        .Where(p => p.Age > 30)
                        .OrderBy(p => p.Name)
                        .ToList();

    foreach (var person in query)
    {
        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
    }
}

এখানে, Method Syntax ব্যবহার করা হয়েছে যেখানে Where() মেথড দিয়ে ৩০ এর বেশি বয়সের লোকদের ফিল্টার করা হয়েছে এবং OrderBy() দিয়ে সাজানো হয়েছে।


ডেটা ম্যানিপুলেশন (Manipulating Data)

LINQ এর মাধ্যমে আপনি ডেটা ম্যানিপুলেশন যেমন, ফিল্টারিং, গ্রুপিং, অ্যাগ্রিগেটিং, মডিফাইং ইত্যাদি কার্য সম্পাদন করতে পারেন।

ফিল্টারিং (Filtering)

Where() মেথড ব্যবহার করে আপনি নির্দিষ্ট শর্ত অনুযায়ী ডেটা ফিল্টার করতে পারেন।

using (var context = new ApplicationDbContext())
{
    var adults = context.People
                        .Where(p => p.Age >= 18)
                        .ToList();

    foreach (var person in adults)
    {
        Console.WriteLine($"Adult: {person.Name}, Age: {person.Age}");
    }
}

এখানে, Where() মেথড ব্যবহার করে Age >= 18 শর্তে ফিল্টার করা হয়েছে এবং শুধু বড়দের নাম প্রিন্ট করা হয়েছে।

গ্রুপিং (Grouping)

LINQ তে GroupBy() ব্যবহার করে আপনি ডেটাকে গ্রুপ করতে পারেন। উদাহরণস্বরূপ, ডেটাকে বিভাগ (Department) বা বয়সের উপর ভিত্তি করে গ্রুপ করা।

using (var context = new ApplicationDbContext())
{
    var groupedByDepartment = context.People
                                     .GroupBy(p => p.Department)
                                     .Select(g => new
                                     {
                                         Department = g.Key,
                                         People = g.ToList()
                                     });

    foreach (var group in groupedByDepartment)
    {
        Console.WriteLine($"Department: {group.Department}");
        foreach (var person in group.People)
        {
            Console.WriteLine($"  Name: {person.Name}, Age: {person.Age}");
        }
    }
}

এখানে, GroupBy() মেথড ব্যবহার করে Department অনুসারে গ্রুপ করা হয়েছে এবং প্রতিটি গ্রুপের সদস্যদের নাম ও বয়স প্রিন্ট করা হয়েছে।

অ্যাগ্রিগেশন (Aggregation)

LINQ তে Sum(), Count(), Average(), Min(), Max() মেথড ব্যবহার করে ডেটার উপর অ্যাগ্রিগেশন অপারেশন করা যায়।

using (var context = new ApplicationDbContext())
{
    var totalAge = context.People
                          .Where(p => p.Age > 18)
                          .Sum(p => p.Age);

    Console.WriteLine($"Total Age of Adults: {totalAge}");
}

এখানে, Sum() মেথড ব্যবহার করে Age এর যোগফল বের করা হয়েছে যাদের বয়স ১৮ এর বেশি।

সাজানো (Sorting)

LINQ তে OrderBy() এবং OrderByDescending() ব্যবহার করে ডেটা সাজানো যায়।

using (var context = new ApplicationDbContext())
{
    var sortedByAge = context.People
                             .OrderBy(p => p.Age)  // Ascending order
                             .ToList();

    foreach (var person in sortedByAge)
    {
        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
    }
}

এখানে, OrderBy() মেথড ব্যবহার করে Age এর ভিত্তিতে ডেটা সাজানো হয়েছে (Ascending Order)।

প্রথম বা একক রেকর্ড ফেচ করা (Fetching First or Single Record)

FirstOrDefault() বা SingleOrDefault() মেথড ব্যবহার করে আপনি প্রথম বা একক রেকর্ড ফেচ করতে পারেন।

using (var context = new ApplicationDbContext())
{
    var person = context.People
                        .FirstOrDefault(p => p.Name == "Alice");

    if (person != null)
    {
        Console.WriteLine($"Found: {person.Name}, Age: {person.Age}");
    }
}

এখানে, FirstOrDefault() মেথড ব্যবহার করে "Alice" নামের প্রথম রেকর্ডটি ফেচ করা হয়েছে।


LINQ ব্যবহার করে ডেটা আপডেট এবং মুছে ফেলা

LINQ এর মাধ্যমে ডেটা ফেচ করার পাশাপাশি, Entity Framework ব্যবহার করে ডেটা আপডেট (update) এবং মুছে ফেলা (delete) করা যেতে পারে।

ডেটা আপডেট (Updating Data)

using (var context = new ApplicationDbContext())
{
    var person = context.People
                        .FirstOrDefault(p => p.Name == "Alice");

    if (person != null)
    {
        person.Age = 26;  // Age আপডেট করা
        context.SaveChanges();  // পরিবর্তন সেভ করা
    }
}

এখানে, "Alice" নামের ব্যক্তির বয়স আপডেট করা হয়েছে এবং SaveChanges() এর মাধ্যমে পরিবর্তন সেভ করা হয়েছে।

ডেটা মুছে ফেলা (Deleting Data)

using (var context = new ApplicationDbContext())
{
    var person = context.People
                        .FirstOrDefault(p => p.Name == "Bob");

    if (person != null)
    {
        context.People.Remove(person);  // ডেটা মুছে ফেলা
        context.SaveChanges();  // পরিবর্তন সেভ করা
    }
}

এখানে, "Bob" নামের ব্যক্তির রেকর্ড মুছে ফেলা হয়েছে।


সারাংশ

LINQ একটি শক্তিশালী এবং সহজ পদ্ধতি যা ডেটাকে ফেচ এবং ম্যানিপুলেট করার জন্য ব্যবহৃত হয়। LINQ এর মাধ্যমে ডেটা ফেচ, ফিল্টার, গ্রুপিং, অ্যাগ্রিগেশন, সাজানো, এবং আপডেট করা সহজ এবং প্রাকৃতিকভাবে করা সম্ভব। Entity Framework এর সাহায্যে আপনি LINQ ব্যবহার করে ডাটাবেস থেকে ডেটা ফেচ এবং ম্যানিপুলেট করতে পারেন। LINQ এর Method Syntax এবং Query Syntax উভয়ই ডেটা ম্যানিপুলেশনের জন্য সহায়ক।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion